// pages/wode/wode.js
Page({


  /**
   * 页面的初始数据
   */
  data: {
    agreed: false,
    showActionSheet: false, // 用于控制是否显示 ActionSheet
    userInfo: null,
    hasUserInfo: false, // 标记用户是否已获取信息


    images: [{
        id: 1,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/dz.png?sign=2529e3c7aaf4d365e3116b16675f1666&t=1739175123',
        text: '我的地址',
        url: '',
      },
      {
        id: 2,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/ws.png?sign=3ce1c79b1eb864f898545442d76abbe8&t=1739175146',
        text: '完善有礼',
        url: '',
      },
      {
        id: 3,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/czyl.png?sign=ea39f969d10f0bc056ff21a15f72b711&t=1739175166',
        text: '储值有礼',
        url: '',
      },
      {
        id: 4,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/xy.png?sign=13958b12259b22458a9d906f081d8503&t=1739175183',
        text: '心意卡',
        url: '',
      },
      {
        id: 5,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/dh.png?sign=800f79da77a7b24db615d37235776261&t=1739175208',
        text: '团购兑换',
        url: '',
      },
      {
        id: 6,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/cj.png?sign=21bfdcc4fac7481d3a33dbe3b4653c4b&t=1739175229',
        text: '盲盒抽奖',
        url: '',
      },
      {
        id: 7,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/kf.png?sign=6a6e58bfd75d4e25ab9710b5728c2dea&t=1739175244',
        text: '联系客服',
        url: '',
      },
      {
        id: 8,
        image: 'https://6465-dev-6gwl5et4f0c95997-1336623530.tcb.qcloud.la/assets/wodeimage/%E6%88%91%E7%9A%84%E5%8A%9F%E8%83%BD/zc.png?sign=f17699534cead584ef9b2a44a8cc4364&t=1739175263',
        text: '政策与协议',
        url: '',
      },
    ]
  },
  // 退出登录
getUserProfile2() {
  // 清除本地存储中的 openidRandom
  wx.removeStorageSync('openidRandom');
  wx.removeStorageSync('userInfo');
  wx.removeStorageSync('cart');
  
  // 重置 userInfo 数据
  this.setData({
    userInfo: null,
    hasUserInfo: false,
    showActionSheet: false,
  });

  // 退出登录后处理，可能需要重新显示登录按钮或者其他操作
  this.setData({
    showActionSheet: false, // 关闭 ActionSheet
  });

  wx.showToast({
    title: '退出登录成功',
    icon: 'success',
    duration: 2000
  });
  // 可以在这里执行更多退出登录后的操作（如跳转到其他页面等）
},



  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      });
    }
    // 从本地存储中获取 openidRandom
    const openidRandom = wx.getStorageSync('openidRandom');
    if (openidRandom) {
      // 获取云数据库引用
      const db = wx.cloud.database();
      const usersCollection = db.collection('users'); // 获取 'users' 集合

      // 查询该用户的用户信息
      usersCollection.doc(openidRandom).get({
        success: (res) => {
          // 检查是否查询到数据
          if (res.data && res.data.userInfo) {
            // 将查询到的用户信息存入页面的 data 中
            this.setData({
              userInfo: res.data.userInfo, // 提取存储的用户信息
              hasUserInfo: true,

            });
          } else {
            console.error('未找到该用户的信息');
          }
        },
        fail: (err) => {
          console.error('查询用户信息失败:', err);
        }
      });
    } else {
      console.error('未找到 openid');
    }
  },

  generateRandomString(length) {
    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    let result = '';
    for (let i = 0; i < length; i++) {
      result += characters.charAt(Math.floor(Math.random() * characters.length));
    }
    return result;
  },

  // 获取用户信息和登录凭证
  getUserProfile() {
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true,
          showActionSheet: false,  // 登录成功后关闭弹框
        });
  
        // 调用 wx.login 获取 code
        wx.login({
          success: (loginRes) => {
            if (loginRes.code) {
              console.log('登录凭证:', loginRes.code);
              // 调用云函数，传递 code 和用户信息
              wx.cloud.callFunction({
                name: 'login', // 云函数名
                data: {
                  code: loginRes.code || '', // 确保 code 不为空
                  userInfo: res.userInfo || {}, // 确保 userInfo 是对象
                },
  
                success: (cloudRes) => {
                  console.log('云函数返回:', cloudRes.result);
                  if (cloudRes.result.success) {
                    const openid = cloudRes.result.openid; // 获取 openid
  
                    // 获取云数据库引用
                    const db = wx.cloud.database();
                    const usersCollection = db.collection('users'); // 获取 'users' 集合
  
                    // 查询等于 openid 的用户信息
                    usersCollection.where({
                      _openid: openid
                    }).get().then(queryRes => {
                      console.log('查询结果:', queryRes);
                      if (queryRes.data.length === 0) {
                        // 如果没有找到用户，创建一个新用户
                        const openidRandom = this.generateRandomString(24); // 创建一个 24 位的随机数
  
                        // 使用 openidRandom 作为文档 ID 存储用户信息
                        usersCollection.doc(openidRandom).set({
                          data: {
                            userInfo: {
                              nickName: res.userInfo.nickName, // 保存名字
                              avatarUrl: res.userInfo.avatarUrl, // 保存头像
                            },
                            updateTime: new Date().toISOString().slice(0, 10),
                          },
                          success: (dbRes) => {
                            console.log('用户信息存储成功:', dbRes);
                            wx.setStorageSync('openidRandom', openidRandom);
                          },
                          fail: (err) => {
                            console.error('用户信息存储失败:', err);
                          }
                        });
                      } else {
                        // 如果找到用户，更新用户信息
                        const openidRandom = queryRes.data[0]._id; // 获取用户的文档 ID
                        usersCollection.doc(openidRandom).update({
                          data: {
                            userInfo: {
                              nickName: res.userInfo.nickName, // 更新名字
                              avatarUrl: res.userInfo.avatarUrl, // 更新头像
                            },
                          },
                          success: (dbRes) => {
                            console.log('用户信息更新成功:', dbRes);
                            wx.setStorageSync('openidRandom', openidRandom);
                          },
                          fail: (err) => {
                            console.error('用户信息更新失败:', err);
                          }
                        });
                      }
                    }).catch(err => {
                      console.error('查询用户信息失败:', err);
                    });
  
                  } else {
                    console.error('云函数返回失败:', cloudRes.result.error);
                  }
                },
  
                fail: (err) => {
                  console.error('调用云函数失败:', err);
                }
              });
            } else {
              console.error('登录失败:', loginRes.errMsg);
            }
          }
        });
      },
      fail: (err) => {
        console.error('获取用户信息失败:', err);
      }
    });
  },
  
  


  onLoginClick() {
    this.setData({
      showActionSheet: true,
    });
  },
  onSkip() {
    this.setData({
      showActionSheet: false,
    });
  },

  // 关闭 ActionSheet
  onClose() {
    this.setData({
      showActionSheet: false,
    });
  },

  // 选择某个选项
  onSelect(event) {
    console.log(event.detail);
  },

  // 会员日
  onprivileges(e) {
    const link = e.target.dataset.link;
    if (link) {
      // 进行跳转
      wx.navigateTo({
        url: link
      });
      console.log('link', link);
    }
  },

  // 功能
  onfeatures(e) {
    const url = e.target.dataset.url; // 获取自定义数据 `url`
    if (url) {
      wx.navigateTo({
        url: url
      });
    }
  },



  /**
   * 生命周期函数--监听页面加载
   */


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})